package de.hdu.pms.ho.dao;

import java.util.Date;
import java.util.List;

import de.hdu.pms.ho.model.Kategorie;
import de.hdu.pms.ho.model.Kunde;
import de.hdu.pms.ho.model.Zimmer;
/**
 * Testclass to test all methods form {@link ZimmerKundeDao}
 * @author Dominic Feig
 */
public class ZimmerKundeDaoTest extends AbstractDataAccessTest {
	private ZimmerKundeDao zimmerKundeDao;
	private ZimmerDao zimmerDao;
	private KundeDao kundeDao;
	private KategorieDao kategorieDao;
	private String tableName = "ZimmerKunde";

	public KategorieDao getKategorieDao() {
		return kategorieDao;
	}

	public void setKategorieDao(KategorieDao kategorieDao) {
		this.kategorieDao = kategorieDao;
	}

	public ZimmerKundeDao getZimmerKundeDao() {
		return zimmerKundeDao;
	}

	public void setZimmerKundeDao(ZimmerKundeDao zimmerKundeDao) {
		this.zimmerKundeDao = zimmerKundeDao;
	}

	public String getTableName() {
		return tableName;
	}

	public void setTableName(String tableName) {
		this.tableName = tableName;
	}

	public ZimmerDao getZimmerDao() {
		return zimmerDao;
	}

	public void setZimmerDao(ZimmerDao zimmerDao) {
		this.zimmerDao = zimmerDao;
	}

	public KundeDao getKundeDao() {
		return kundeDao;
	}

	public void setKundeDao(KundeDao kundeDao) {
		this.kundeDao = kundeDao;
	}

	@SuppressWarnings("deprecation")
	public void testReservieren(){
		String[] tables = {tableName};
		deleteFromTables(tables);
		kategorieDao.create("Deluxe", 150);
		List<Kategorie> allKat = kategorieDao.findAll();
		zimmerDao.create(1, 5, 30, false, true, allKat.get(0));
		List<Zimmer> allZim = zimmerDao.findAll();
		kundeDao.create("Hans", "Meier", 1234567);
		List<Kunde> allKun = kundeDao.findAll();
		Date datum = new Date();
		zimmerKundeDao.reservieren(allZim.get(0), allKun.get(0), false, false, false, "02.01.2011", "07.01.2011", datum);
		int rows = countRowsInTable(tableName);
		assertEquals("Die DB muss eine Zeile enthalten", 1, rows);
	}
	

	
}
